<?php
class Application_Model_QueueUpdates extends Xend_Db_Model {
	protected $_dbTableName = 'Application_Model_Table_QueueUpdates';
	
	public function __construct() {
		parent::__construct();
	}
	
	/**
	 * speichert einen neuen Aktualisierungszeitpunkt in die Tabelle queue_updates
	 * @param Application_Model_Schema_QueueUpdate $update
	 * @param int Id des zuletzt abgespeicherten Datensatzes
	 */
	public function save(Application_Model_Schema_QueueUpdate $update) {
		$data = array(
			'timestamp'	=> $update->timestamp,
		);
		
		return (int) $this->getDbTable()->insert($data);
	}	
	
	/**
	 * sucht alle Eintraege, die den Bedinungen entsprechen und errechnet daraus eine 
	 * Intervalliste
	 * @param array $where Array mit Bedingungen, die an die Datenbank uebergeben werden
	 * @param array zeitlich sortierte Liste
	 */
	public function findallPeriod($where = array(), $options = array()) {
		$periods	= array();
		$select		= $this->_database
			->select()
			->from(
				array('queue_updates'),
        array('queue_updates.timestamp')
			);

		// Where
		// -----------------------------------------------------------------------------------
		if(is_array($where) && !empty($where)) {
			foreach($where as $k => $v) {
				$select->where($k, $v);
			}
		}

		// Options
		// -----------------------------------------------------------------------------------
		if(isset($options['limit'])) {
			$select->limit($options['limit'], 0);
		}

		// Datenauswertung
		// -----------------------------------------------------------------------------------
		foreach($this->fetch($select) as $k => $v) {
			$periods[] = (int) $v['queue_updates']['timestamp'];
		}

		return $periods;
	}		
}
?>